#ifndef GAMECONTROL_H
#define GAMECONTROL_H

#include"gamedfine.h"
#include <QKeyEvent>
#include <QTimer>
#include<QLabel>
#include "player.h"
#include<QGraphicsPixmapItem>//图形元素
#include<QGraphicsView>//视图
#include<QGraphicsScene>//场景
#include "bullet.h"
#include "enemymonster.h"
#include<QMediaPlayer>//媒体播放器
#include<QList>
#include <QMovie>
#include<QThread>
#include<QPainter>
#include<QToolButton>
#include<QDebug>
#include <QtGlobal>
#include <QTime>
#include "gameobject.h"
#include"widget.h"


class GameControl : public QObject
{


public:
    //单例
    GameControl();
   static GameControl* instance;
    //获取单例
   static GameControl* Instance()
   {
       if(instance == nullptr)
       {
           return instance =new GameControl();
           //instance->setParent(Widget::widget);

       }
        return instance;
   }


   //析构函数
   ~GameControl()
   {
//       if(instance !=nullptr)
//           delete instance;

//           instance =nullptr;
   }

   //游戏初始化
   void GameInit();

   //加载开始场景
   void LoadStartSence();

   //加载游戏场景
   void LoadGameSence();

   //游戏逻辑定时器开启
   void GameStart();

   //游戏逻辑定时器关闭
   void GameOver();



   //人物图像指针
   Player *player;

   //移动方向记录
   static int m_w;
   static int m_s;
   static int m_a;
   static int m_d;

   //随机数
   static int sui;
   static int suiji[1000];


   //定时器
   QTimer* m_timer;//一定时间不操作回归静止状态的计时器
   QTimer* m_movetimer;//玩家移动计时器
   QTimer* m_bulletmovetimer;//子弹移动定时器
   QTimer* m_createenemymonstertimer;//怪物创建定时器


   QGraphicsView mGameView;//游戏视图
   QGraphicsScene mSence;//场景
   QGraphicsScene mStartSence;//开始游戏场景
   QGraphicsScene mguizeSence;//规则场景
   QGraphicsPixmapItem mBackGround;//背景
   QGraphicsPixmapItem mRenwutouxiang;//人物头像
   QGraphicsPixmapItem xuetiao1;//空血条
   QGraphicsPixmapItem xuetiao2;//血条
   QGraphicsPixmapItem shibai;//失败图片
   QGraphicsSimpleTextItem chengji;//所得分数
   QGraphicsPixmapItem fightbiao;//游戏logo

   //容器
   QList<Bullet*> mBulletList;//子弹容器
   QList<EnemyMonster*> mEnemyMonsterList;//敌人怪兽容器


   //音乐
   QMediaPlayer* mOpenMusic;
   QMediaPlayer* mFightMusic;
   QMediaPlayer* mzoulubgm;
   QMediaPlayer* mdaoxia;
   QMediaPlayer* haotengabgm;
   int haotenga=1;

    void slot_Result();//一定时间不操作回归静止状态
    void playermove(int m_w,int m_s,int m_a,int m_d);//int m_w,int m_s,int m_a,int m_d
    //我方子弹生成函数
    void PlayerBulletShoot(int zy);
    //敌人创建函数
    void CreateMonster(QPoint mpi,int sp);
    //碰撞检测函数
    void Collision();
    //怪物创建函数
    void CrateEnemyMonster();

};
#endif // GAMECONTROL_H
